<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>定时发布博客</title>

    <!-- 引入自己写的样式 -->
    <link rel="stylesheet" href="css/conmmon.css">
    <link rel="stylesheet" href="css/blog_edit.css">

    <!-- 引入 editor.md 的依赖 -->
    <link rel="stylesheet" href="editor.md/css/editormd.min.css" />
    <script src="js/jquery.min.js"></script>
    <script src="editor.md/editormd.js"></script>
    <script src="js/common.js"></script>
</head>

<body>
    <!-- 导航栏 -->
    <div class="nav">
        <img src="img/log2.jpg" alt="">
        <a href="blog_list.html" class="title">博客系统主页</a>
        <!-- 用来占据中间位置 -->
        <span class="spacer"></span>
        <a href="myblog_list.html">主页</a>
        <a href="blog_add.html">写文章</a>
        <a href="javascript: logout();">注销</a>

        <!-- <a href="#">注销</a> -->
    </div>
    <!-- 编辑框容器 -->
    <div class="blog-edit-container">
        <!-- 标题编辑区 -->
        <div class="title">
            <input type="text" id="title" placeholder="在这里写下文章标题">
            <button onclick="draftsub() " id="draft">保存草稿</button>
            <button onclick="schedule() " id="pub">定时发布</button>
        </div>
        <!-- 创建编辑器标签 -->
        <div id="editorDiv">
            <textarea id="editor-markdown" style="display:none;"></textarea>
        </div>
    </div>

    <script>
        var editor;

        function initEdit(md) {
            // 编辑器设置
            editor = editormd("editorDiv", {
                // 这里的尺寸必须在这里设置. 设置样式会被 editormd 自动覆盖掉.
                width: "100%",
                // 高度 100% 意思是和父元素一样高. 要在父元素的基础上去掉标题编辑区的高度
                height: "calc(100% - 50px)",
                // 编辑器中的初始内容
                markdown: md,
                // 指定 editor.md 依赖的插件路径
                path: "editor.md/lib/",
                saveHTMLToTextarea: true //
            });
        }

        initEdit("# 在这里写下一篇博客"); // 初始化编译器的值
        // 提交
        function schedule() {
            if (confirm("确认发布文章?")) {
                //1.非空校验
                var title = jQuery("#title");
                if (title.val() == "") {
                    alert("标题不能为空!");
                    title.focus();
                    return;
                }
                if (editor.getValue() == "") {
                    alert("请先输入文章内容!");
                    return;
                }
                //2.定时发布功能
                //自定义发布时间
                var date = prompt("请输入您的名字", "请按指定格式填写发布时间 yyyy-MM-dd HH:mm:ss");
                //验证时间格式是否正确
                var reg = /^((\d{2}(([02468][048])|([13579][26]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|([1-2][0-9])))))|(\d{2}(([02468][1235679])|([13579][01345789]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(\s((([0-1][0-9])|(2?[0-3]))\:([0-5]?[0-9])((\s)|(\:([0-5]?[0-9])))))?$/;
                // 验证是否是指定格式的日期
                var flg = reg.test(date);
                if (flg == false) {
                    alert('未按照指定格式设置发布时间');
                    return fasle;
                }
                var curTime = new Date();
                curTime.setMinutes(curTime.getMinutes());
                // 发布时间 的 DateTime
                var publishTime = new Date(date);

                // 获取两个时间段的时间戳
                var curMills = curTime.getTime();
                var publishMills = publishTime.getTime();
                if (curMills >= publishMills) {
                    alert("当前时间距离定时时间太接近,请重新设置!");
                    return false;
                }


                jQuery.ajax({
                    url: "/art/scheadd",
                    type: 'post',
                    data: { "title": title.val(), "content": editor.getValue(), "publishTime": publishMills - curMills },
                    success: function (result) {
                        if (result != null && result.code == 200) {
                            alert("定时发布成功!")
                            location.href = "myblog_list.html";
                        } else {
                            alert("抱歉:文章发布失败,请稍后再试!");
                        }
                    }
                });
            }
        }

        function draftsub() {
            if (confirm("确认保存草稿?")) {
                //1.非空校验
                var title = jQuery("#title");
                if (title.val() == "") {
                    alert("标题不能为空!");
                    title.focus();
                    return;
                }
                if (editor.getValue() == "") {
                    alert("请先输入文章内容!");
                    return;
                }
                //2.请求后端进行保存博客草稿功能
                jQuery.ajax({
                    url: "/art/add",
                    type: 'post',
                    data: { "title": title.val(), "content": editor.getValue(), 'state': 0 },
                    success: function (result) {
                        if (result != null && result.code == 200) {
                            alert("保存草稿成功！")
                            location.href = "/myblog_list.html";

                        } else {
                            alert("抱歉:保存草稿失败,请稍后再试!");
                        }
                    }
                });
            }
        }

        /**
             * 离开网站的时候提示当前做的操作未保存
            */
        window.onbeforeunload = function () {
            return "您的文章尚未保存！";
        }
    </script>
</body>

</html>